Smart phones are ubiquitous today, and every modern smart phone includes a camera feature. Most people therefore usually have a camera within arm's reach to quickly and easily take a photograph, which is referred to herein as a digital image. At the same time, people are motivated to obtain more digital images because opportunities to share them have increased, such as through sending texts and making social media posts. Consequently, more digital images are produced than ever before.
As smart phones have evolved in recent years, the camera features have provided digital images with an increasingly higher quality appearance. Nevertheless, some digital images still present an unsatisfactory appearance. For example, a portion of a desired subject of a digital image may be blurry or obscured by a foreground object. Fortunately, digital images can be modified to ameliorate an unsatisfactory visual aspect using an imaging application, such as a photo editing program.
An imaging application can modify a digital image, which is referred to herein as an image, based partially on manual direction or solely automatically. Generally, the more additional information about the image that the imaging application can obtain, the more likely an image modification can be performed automatically without manual direction. Further, additional information about the image can enable a higher quality image to result from the image modification. Additional information about an image can be intrinsic to the image or extrinsic to the image.
An example of intrinsic additional information about an image is a symmetry that is present within the image. Symmetries occur all around us. Both natural organisms, such as plants, animals, inanimate objects, and even the human body, and person-made structures exhibit symmetries in shape, texture, or form. These symmetries result in repetitive visual patterns that play a vital role in the human perception of images. Symmetric repetitions of image patterns can therefore be used as high-level constraints for an underlying image manipulation algorithm to provide some type of enhancement to an image.
To use symmetrically-repeated visual patterns to facilitate manipulation of an image, the symmetries are first discovered within the image. Unfortunately, conventional automated schemes for symmetry detection are limited to only a certain kind of symmetry or a symmetry under a certain condition, such as the absence of perspective distortion. Consequently, conventional approaches to using symmetry for image manipulation rely on human direction to specify a symmetry within the image, or conventional approaches fail to utilize each kind of symmetry that is present within the image. Thus, the former manual option thrusts tedious and repetitive work on an end-user, and the latter automated option produces visually poor results from the image manipulation.